package com.power.ding.service;

import com.plf.common.domain.PageDataResponse;
import com.power.ding.model.Di_rel_dept_correct;
import com.power.ding.model.Di_user;
import com.power.ding.model.pageInfo.Di_rel_dept_correctPageInfo;
import com.power.ding.model.pojo.bo.Di_rel_dept_BaseUser;
import org.springframework.data.domain.Page;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 *  司法社矫组织机构表业务层
 */
public interface Di_rel_dept_correctService {

    /**
     *  根据id获取司法社矫组织机构表对象
     */
    Di_rel_dept_correct getById(Serializable id);

    /**
     *  根据传入司法社矫组织机构表对象进行新增或更新操作
     */
    void saveOrUpdate(Di_rel_dept_correct di_rel_dept_correct);

    /**
     *  根据id删除司法社矫组织机构表
     */
    void removeById(Serializable id);

    /**
     *  根据传入条件查询司法社矫组织机构表分页结果
     */
    Page<Di_rel_dept_correct> findAll(Di_rel_dept_correctPageInfo pageInfo);
    
    /**
     * 查询全部司法社矫组织机构表
     */
    List<Di_rel_dept_correct> findAll();
    
     /**
     *  根据id批量删除司法社矫组织机构表
     */
    void removeByIds(List<Integer> list);
    
     /**
     *  批量保存司法社矫组织机构表
     */
    void saveAll(List<Di_rel_dept_correct> list);

    /**
     * 查询司法结构树
     */
    List<Map<String, Object>> getQueryTree();


    /**
     * 根据传入条件查询司法社矫组织机构表分页结果
     */
    PageDataResponse queryPageDeptAndUser(Di_rel_dept_correctPageInfo pageInfo);


    /**
     * 查询司法所的人员
     * @return
     */
    List<Di_rel_dept_BaseUser> queryBaseOrgUser();


    /**
     * 查询司法所组织机构及对应的人员数据
     * @return
     */
    List<Map<String,Object>> queryBaseOrgTree();

    void updataContactuser(Di_rel_dept_correct diRelDeptCorrect);

    /**
     * 根据部门id查询关联用户信息
     */
    Di_user queryDeptAndUserById(String id);

    /**
     * 通过参数查询司法所的人员
     */
    List<Di_rel_dept_BaseUser>  queryBaseOrgUserByUser(Di_rel_dept_BaseUser baseUser);
}
